#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//int main()
//{
//    int arr[] = { 1,2,(3,4),5 };
//    printf("%d\n", sizeof(arr));
//    printf("%d", arr[2]);
//    return 0;
//}


//#include<stdio.h>
//#define N 100
//int main()
//{
//    int n = 0, i = 0, j = 0;
//    int arr[N][N] = { 0 };
//    while (scanf("%d", &n) != EOF)
//    {
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            if (i == j)
//                printf("*");
//            else if (n - 1 == i + j)
//                printf("*");
//            else
//                printf(" ");
//        }
//        printf("\n");
//    }
//   }
//    
//    return 0;
//}


//#include<stdio.h>
//#define N 100
//int main()
//{
//    int n = 0, i = 0, j = 0;
//    int arr[N][N] = { 0 };
//    while (scanf("%d", &n) != EOF)
//    {
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            if (i == 0 || i == n - 1)
//                printf("*");
//            else if (j == 0 || j == n - 1)
//                printf("*");
//            else
//                printf(" ");
//        }
//        printf("\n");
//    }
//   }
//    
//    return 0;
//
// }



//#include<stdio.h>
//int main()
//{
//	int arr[10] = { 0 };
//	int i = 0;
//	for (; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	for (i = 9; i >= 0; i--)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//
//}


//
//#include<stdio.h>
//int main()
//{
//	int arr[10] = { 0 };
//	int i = 0, num = 0;
//	for (; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//		num += arr[i];
//	}
//	printf("%f ", num/10.0);
//	return 0;
//
//}


//
//#include<stdio.h>
//int main()
//{
//	int arr1[5] = { 1,2,3,4,5 };
//	int arr2[5] = { 5,4,3,2,1 };
//	int arr3[5] = { 0 };
//	int i = 0;
//	for (; i < 5; i++)
//	{
//		arr3[i] = arr1[i];
//		arr1[i] = arr2[i];
//		arr2[i] = arr3[i];
//	}
//	for (i = 0; i < 5; i++)
//	{
//		printf("%d ", arr1[i]);
//	}
//	printf("\n");
//	for (i = 0; i < 5; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//	printf("\n");
//	return 0;
//}
//


//#include<stdio.h>
//#define N 100
//int main()
//{
//	int m = 0, n = 0;
//	int i = 0, j = 0;
//	int temp = 0;
//	int arr[N][N] = { 0 };
//	scanf("%d %d", &n, &m);
//	for (; i < n; i++) 
//	{
//		for (j=0; j < m; j++)
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//	for (i = 0; i < n; i++)
//	{
//		for (j = 0; j < m; j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	printf("\n");
//	for (i = 0; i < m; i++)
//	{
//		for (j = 0; j < n; j++)
//		{
//			printf("%d ", arr[j][i]);
//		}
//		printf("\n");
//	}
//		
//	return 0;
//}


#include<stdio.h>
int main()
{
    int n, m;
    scanf("%d %d\n", &n, &m);
    int i, j, arr[2000];
    int tmp;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    for (i = n; i < n + m; i++)
    {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < n + m; i++)
    {
        for (j = 0; j < n + m - i - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
    for (i = 0; i < n + m; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}






















